import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'

Vue.use(Vuex)

// vuex 就是处理全局数据，状态， 数据仓库
// vuex几大核心  state  getters mutations actions modules
// state 全局的数据仓库
// mutations  唯一能修改state的地方， 只能放同步代码，在组件里面通过commit（提交）去触发mutations
// actions 触发mutations去修改state，自己不能修改state， 里面可以放异步代码， 在组件里面通过dispatch（分发）；在action里面通过commit去触发mutations
// modules 大项目里面 所有的状态都在一个state里面，不好管理，所以会创建多个模块组织代码，方便维护

const store = new Vuex.Store({
  modules: {
    app,
    settings,
    user: user
  },
  getters
})

export default store
